package com.jackchen.service;

import java.util.Map;

import com.jackchen.po.User;
import com.jackchen.vo.EditUserVO;
public interface UserService extends IBaseService {

	/**
	 * 登陆系统的时候，根据用户名/密码查询用户
	 * 
	 * @param userName
	 * @param password
	 * @return
	 */
	public User queryUserByUserName(String userName,String password);
	
	/**
	 * 查询用户
	 * 当keyword为空，regionGroupId,userGroupId,onlineState为空或者为-1时，查询的是所有用户
	 * 
	 * @param keyword		查询条件：关键字
	 * @param regionGroupId 查询条件：区域组
	 * @param userGroupId	查询条件：用户组
	 * @param onlineState	查询条件：在线状态
	 * @param pageSize		
	 * @param startRow
	 * @return
	 */
	public Map queryUserOnPage(String keyword, String regionGroupId, String userGroupId, String onlineState, int pageSize, int startRow);
	
	/**
	 * 验证用户名是否已存在
	 * 
	 * @param username
	 * @return
	 */
	public boolean verifyUsername(String username);
	
	/**
	 * 注册新用户
	 * 
	 * @param username
	 * @param password
	 * @param usergroupId
	 * @param realname
	 * @param phone
	 * @param regiongroupId
	 * @param email
	 * @param validDay
	 * @param languageFlag
	 * @return
	 */
	public boolean createNewUser(String username, String password, String usergroupId, 
			String realname, String phone, String regiongroupId, String email, int validDay,
			int languageFlag);
	
	/**
	 * 删除用户
	 * 
	 * @param userIds
	 * @return
	 */
	public Object[] deleteUsers(String[] userIds);
	
	/**
	 * 查询用户选中希望修改的User对象
	 * 
	 * @param userId
	 * @return
	 */
	public EditUserVO queryEditUser(String userId);
	
	/**
	 * 编辑用户
	 * 
	 * @param userid
	 * @param username
	 * @param usergroupId
	 * @param realname
	 * @param phone
	 * @param regiongroupId
	 * @param email
	 * @param validDay
	 * @param languageFlag
	 * @return
	 */
	public boolean updateUser(String userid, String username, String usergroupId, 
			String realname, String phone, String regiongroupId, 
			String email, int validDay, int languageFlag);
}
